/*
 PMCreateProfileViewController.m
 Date Created: February 16, 2010
 
 Author: Karol Krizka <kkrizka@gmail.com>
 
 Copyright (C) 2010 Green-Power
 
 URL: http://code.google.com/p/green-power
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 3 of the License, or
 (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 
 $Id$
 */

#import "PMCreateProfileViewController.h"


@implementation PMCreateProfileViewController

@synthesize profileNameTextField,createProfileButton;
@synthesize profileList;

- (PMCreateProfileViewController *)initWithProfileList:(PMProfileList *)myProfileList {
  self=[super init];
  
  if( self ) {
    [self setProfileList:myProfileList];
  }
  
  return self;
}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
  [super viewDidLoad];
  [self setTitle:@"Create Profile"];
  [profileNameTextField setDelegate:self];
}

/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/

- (void)didReceiveMemoryWarning {
	// Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
	
	// Release any cached data, images, etc that aren't in use.
}

- (void)viewDidUnload {
	// Release any retained subviews of the main view.
	// e.g. self.myOutlet = nil;
}

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
  NSMutableCharacterSet *allowedCharacterSet=[[NSCharacterSet alphanumericCharacterSet] mutableCopy];
	[allowedCharacterSet formUnionWithCharacterSet:[NSCharacterSet whitespaceCharacterSet]];
	
  NSCharacterSet *nowAllowedCharacterSet=[allowedCharacterSet invertedSet];
  
  if([string rangeOfCharacterFromSet:nowAllowedCharacterSet].location!=NSNotFound) {
    return NO;
  } else {
    return YES;
  }
}

- (IBAction)textFieldTextChanged:(id)sender {
  if([profileList isProfileNameValid:[sender text]] &&
     [profileList isProfileNameUnique:[sender text]]) {
    [createProfileButton setEnabled:YES];
  } else {
    [createProfileButton setEnabled:NO];
  }
}

- (BOOL)textFieldShouldReturn:(UITextField *)textField {
  [textField resignFirstResponder];
  return YES;
}

- (IBAction)createProfile:(id)sender {
  NSString *profileName = [profileNameTextField text];
  
  PMProfile *result=[[self profileList] createProfile:profileName];
    if(!result) {
    // TODO handle error
    NSLog(@"Error saving new profile..");
  }
  
  [createProfileButton setEnabled:NO];
  [profileNameTextField resignFirstResponder];
  
  [[self navigationController] popViewControllerAnimated:YES];
}

- (void)dealloc {
    [super dealloc];
}


@end
